package JVM.第03篇_运行时内存篇;


/**
 * 问题一:栈溢出的情况?
 *      栈溢出:StackOverflowError;
 *      举个简单的例子:在main方法中调用main方法，就会不断压栈执行，直到栈溢出;
 *      栈的大小可以是固定大小的，也可以是动态变化(动态扩展)的。
 *      如果是固定的，可以通过-Xss设置栈的大小;
 *      如果是动态变化的，当栈大小到达了整个内存空间不是了,
 *      就是抛出OutOfMemory异常(java.lang.OutOfMemoryError)
 * 问题二:调整栈大小，就能保证不出现溢出吗?
 *      不能。因为调整栈大小，只会减少出现溢出的可能，栈大小不是可以无限打大的，所以不能保证不出现溢出
 * 问题三:分配的栈内存越大越好吗?
 *      不是,因为增加栈大小，会造成每个线程的栈都变的很大，使得一定的栈空间下，能创建的线程数量会变小
 * 问题四:垃圾回收是否会涉及到虚拟机栈?
 *      不会;垃圾回收只会涉及到方法区和堆中，方法区和堆也会存在溢出的可能;
 *      程序计数器,只记录运行下一行的地址，不存在溢出和垃圾回收;
 *      虚拟机栈和本地方法栈，都是只涉及压栈和出栈，可能存在栈溢出，不存在垃圾回收。
 * 问题五:方法中定义的局部变量是否线程安全?
 * @see JVM.old.逃逸分析
 *
 */
public class C5_栈的问题小结 {

}
